1. Field of the Invention
The present invention relates generally to computer networks and more particularly to methods and apparatus for enhancing the performance of displaying images on Internet browsers.
2. Description of the Related Art
The World-Wide-Web ("Web") has become immensely popular largely because of the ease of finding information and the user-friendliness of today's browsers. A feature known as hypertext allows a user to access information from one Web page to another Web page by simply pointing (using a pointing device such as a mouse) at the hypertext and clicking. Another feature that makes the Web attractive is having the ability to process the information (or content) in remote Web pages without the requirement of having a specialized application program for each kind of content accessed. Thus, the same content is viewed across different platforms. Browser technology has evolved to enable running of applications that manipulate this content across a wide variety of different platforms.
The Web relies on an application protocol called HTML (Hyper Text Mark Up Language) which is an interpretative scripting language for rendering text, graphics, images, audio, and real-time video on a Web compliant browser. HTML is independent of client operating systems. So HTML renders the same content across a wide variety of software and hardware operating platforms. Software platforms include Windows 95, Windows NT, Copeland, AIX, Unix, and equivalent. Popular compliant Web-Browser includes Microsoft's Internet Explorer and Netscape Navigator.
HTML interprets links to files, images, sound clips, and video clips through the use of hypertext links. Upon user invocation of a hypertext link to a Web page, the browser initiates a network request to receive the desired Web page. The selected Web page is loaded according to its HTML script formatting. Typically any HTML page image is stored in its full size in the Web server. When a HTML Web page is selected by a user, the full size image is sent across the network along with the HTML page. The HTML scripting language provides position descriptors and size descriptors for each image to be loaded on the Web page. The client Web browser interprets these descriptors. Each image is placed in a position as specified by the position descriptor. Similarly, each image is scaled as specified by the corresponding size descriptor. It is common for the dimension specified by the size descriptor to scale the full image stored at the Web server to a smaller size. For example, a Web page designer may specify a thumbnail view of a full size image be displayed on a HTML page. Although, this system of placing and sizing the image at the client Web browser works well, it is not without costs. The scaling down or reduction of full size images by the client Web browser has two costs.
The first cost is the time required for the client Web browser to scale and display the image. Scaling images from the stored full size format to a smaller scaled format can take considerable time. Web pages containing several images can take 30 to 60 seconds to load. The user must wait until the image is completely loaded if they want to view the entire Web page. Therefore, a need exits to provide a faster method and apparatus for loading images for display on a HTML page.
The second cost is network congestion. Sending the entire full size image formats over a physically limited network link causes an increase in network congestion. Many times the full size image format is not required and only a smaller image size is specified by the HTML size descriptor. The client Web browser discards the unnecessary additional image content during the display of the reduced image size. The process of sending an entire full size image when only a small image size is specified is inefficient. Accordingly, a need exists for a method and apparatus to decrease network congestion for transmitting images for display on a HTML page.
Another problem with resizing images on a client Web browser is the limited availability of scaling algorithms. The most common method of reducing the size of an image is simply to discard image content through removal of pixels. For example, to reduce an image by a factor of 1/2, simply remove every other pixel in both the x and y direction of the image. This method requires little computation resources and can be implemented on a wide variety of client Web browser hardware platforms. The use of these simple discard methods does not produce the most desirable image results. Many other techniques such as sub-sampling and averaging adjacent pixels produce smaller image sizes with superior image qualities. The required computation resources to implement many of these more sophisticated image reduction algorithms can be large. Many slower and smaller Web browser client hardware platforms cannot implement these algorithms. Moreover, many of these Web browser client platforms may scale an image using different methods producing results that are not uniform across a variety of Web browser clients. Therefore, a need exists to provide more sophisticated image reduction algorithms that can deliver scaled images, uniformly, to a variety of Web browser clients, regardless of the hardware resources available at these clients.